Wireless sensor network context data delivery system and method

ABSTRACT

A system has a sensing device for detecting a signal and logic configured to discover the sensing device at a location on a user&#39;s body, the logic further configured to monitor the signal for an event and upon receiving information indicating an event has occurred the logic is further configured to transmit event data indicative of the event to a controller via a network.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 11/972,335, entitled “Wireless Sensor NetworkContext Data Delivery System and Method” and filed on Jan. 10, 2008,which is incorporated herein by reference. U.S. patent application Ser.No. 11/972,335 claims priority to U.S. Provisional Patent ApplicationNo. 60/884,352, entitled “Wireless Sensor Network System and Method forUsing the Same,” filed on Jan. 10, 2007, which is incorporated herein byreference.

FIELD OF THE INVENTION

The present invention relates generally to the field of wireless sensornetworks. In particular, the present invention relates to wirelesssensor networks which monitor one or more external signals wherein achange in such signals triggers detection, monitoring, recording, andreporting functions of the system. More particularly, the presentinvention relates to a wireless sensor network system to be used forphysiological health monitoring, environmental monitoring, industrialapplications, machinery maintenance, and other complex networkingenvironments.

BACKGROUND OF THE INVENTION

Wireless sensor networks are known in the field of computing. Suchnetworks are used for detecting, monitoring, recording, and reportingsignal changes specific to the application in which it is used. Forexample, in a physiological health monitoring application, a wirelesssensor network may include accelerometer sensors for measuring motionand orientation; temperature and humidity sensors; electrodes andbio-amplifiers for measuring heart waveforms, respiration, and muscleactivity; oxygen saturation (SpO₂) sensors; and galvanic skin response(GSR) sensors.

Wireless sensor networks are composed of one or more sensor nodes and asystem controller. Sensor nodes include a computing platform withwireless communication capabilities and one or more sensor devices. Thesystem controller provides a data sync point for the collection andextraction of data, system configuration capabilities, and may includean interface for the end user of the wireless sensor network. The systemcontroller may be referred to as a personal server, network coordinator,or personal area network (PAN) coordinator. The system controller mayprovide visual, audible or other signals to the user in response tocertain events.

“Events” refer to specific changes in signals such as heartbeatdetection and health monitoring applications, temperature detection andenvironmental monitoring, or vibration at specified frequencies inindustrial applications. Events can also be used to describe and extractcomplex features which require combining and analyzing results frommultiple signals and sensors.

In resource constrained systems such as wireless sensor networks, nodesare battery powered, placing a premium on low power consumption.Furthermore, such nodes are often manufactured with unique identifiers,making placement of such nodes throughout the network in its desiredapplication critical to its proper function in the system. Furthermore,a wireless sensor network may contain a plurality of sensor nodes, eachproducing various types of data, each requiring a different amount ofpower consumption and memory, and any of which may be important to theoverall understanding of the system in which it is operating.

Prior art wireless sensor networks rely on complex central monitoringunits and require complex signal processing in order to effectivelymanage data generated by the sensor nodes. It is desirable, therefore,to provide a wireless sensor network capable of reserving memory,controlling the delivery of contextual event data, and allowing for nodediscovery, configuration, and calibration in multi-node applications.Each of these capabilities is provided in the present invention.

SUMMARY OF THE INVENTION

The present disclosure is directed to a wireless sensor network capableof event management and memory conservation, contextual event datadelivery, and node discovery configuration and calibration in multi-nodeapplications.

A system in accordance with an embodiment of the present disclosure hasa sensing device that detects a signal and logic that monitors thesignal for an event. Further, upon receiving information that an eventhas occurred, the logic transmits event data indicative of the event toa controller via a network.

A method in accordance with an embodiment of the present disclosure canbe generally conceptualized by the following steps: 1) detecting asignal via a sensor coupled to a body; 2) monitoring the signal for anevent; 3) preserving data indicative of the signal in a history buffer;and 4) upon receiving information that an event has occurred,transmitting event data indicative of the event as well as a fraction ofthe preserved data indicative of the original signal representingcontext of the event to a controller via a network.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described with reference to the accompanyingdrawings.

FIG. 1 depicts a wireless sensor network system in accordance with anembodiment of the present disclosure.

FIG. 2 is a block diagram of an exemplary controller of the wirelesssensor network system depicted in FIG. 1.

FIG. 3 is a drawing of a user's axes as used by a calibration functionof the system depicted in FIG. 1.

FIG. 4 is a drawing of a user's axes and a sensor's axes as used by acalibration function of the system depicted in FIG. 1.

FIG. 5 is a drawing of a user's axes and a sensor's axes including theeffect on the Z′ axis of gravity as used by a calibration function ofthe system depicted in FIG. 1.

FIG. 6 is a drawing of a sensor's axes and a gravity vector as used by acalibration function of the system depicted in FIG. 1.

FIG. 7 is a drawing of a user's axes and the effect of the user'smovement as used by a calibration function of the system depicted inFIG. 1.

FIG. 8 is a block diagram of an exemplary sensor of the wireless sensornetwork system depicted in FIG. 1.

FIG. 9 is a timeline depicting an algorithm latency illustrating eventmanagement as performed by the system of FIG. 1.

FIG. 10 is a block diagram of a data frame as used by the system of FIG.1.

FIG. 11 is a block diagram of multi-tiered memory architecture as usedby the system of FIG. 1.

FIG. 12 is a timeline illustrating the contextual data deliveryfunctionality of the system of FIG. 1.

FIG. 13 is a block diagram illustrating the contextual data deliveryfunction of the system of FIG. 1.

FIG. 14 is a timeline illustrating the contextual data deliveryfunctionality of the system of FIG. 1.

FIG. 15 is a flowchart of exemplary architecture and functionality ofthe event management functionality control logic of the controller ofthe system of FIG. 1.

DETAILED DESCRIPTION

FIG. 1 depicts a wireless sensor network system 100 in accordance withan embodiment of the present disclosure. The system 100 comprises aplurality of sensors 103-106 coupled to a body 107 of a user 110. Inaddition, the system 100 comprises a controller 102 that iscommunicatively coupled to the sensors 103-107 via a body area network101.

In one embodiment, the functional capabilities and the hardware (notshown) of the sensors 103-106 are characteristically homogenous. Inanother embodiment, the functional and hardware characteristics of eachof the sensors 103-106 may differ. The sensors 103-106 include, forexample, one or more accelerometer sensors for measuring motion andorientation, temperature and humidity sensors, electrodes andbio-amplifiers for measuring heart rate and heart waveforms, humiditysensors, respiration sensors, muscle activity sensors, SpO₂ sensors,and/or GSRs. These types of sensors are identified for exemplarypurposes, and other types of sensors can be used in other embodiments ofthe wireless sensor network system 100.

Furthermore, four sensors 103-106 are shown coupled to the user's body107 in FIG. 1. However, four is an exemplary and arbitrary number. Moreor fewer sensors 103-106 may be used in other embodiments of thewireless sensor network system 100.

As indicated hereinabove, the controller 102 is communicatively andwirelessly coupled to the plurality of sensors 103-106 through the bodyarea network 101. The controller 102 performs certain initial functions,including discovery of available sensors 103-106, configuration of thesensors 103-106, and calibration of the system 100 related toorientation of the user's body 107. Note that the controller 102 may be,for example, a smart phone, an intelligent wrist watch, or a desktopappliance, such as a wireless gateway. Further note that a “smart phone”refers to a telephone that has data accessing features. As an example, amobile telephone that has voice services in combination with Internet,e-mail, fax, and/or pager capabilities is referred to as a smart phone.

Once the controller 102 has performed the initial functions, thecontroller 102 receives data from the plurality of sensors 103-106related to the physical and physiological aspects of the body 107through the body area network 101. The data may be indicative, forexample, of the present orientation of the body 107, the heartbeat andheartbeat waveform, humidity, oxygen saturation, muscle activity, and/ortemperature.

Furthermore, the controller 102 may communicate audibly or visuallyinformation related to the sensors 103-106 to the user 110. For example,during the initial functions, the controller 102 may communicatecommands to the user 110 related to placement of the sensors 103-106 onthe user's body 107. The initial functions of discovery, configuration,and calibration are described further herein.

The controller 102 may be, for example, a hand-held device like apersonal digital assistant (PDA) or any other type of device capable ofcommunicating over the body area network 101 with the sensors 103-106.Accordingly, the controller 102 comprises software, hardware, or acombination thereof to perform a variety of functions. Such functionsmay include, for example, wireless communications, network access, orthe like. The controller 102 may be stylus-driven, keyboard driven, orvoice driven. Alternatively, the controller 102 may be a personalcomputer that communicates wirelessly with the sensors 103-106. Thecontroller 102 is described further with reference to FIG. 2.

The body area network 101 may be any type of body area network known inthe art or future-developed. In one embodiment, the body area network101 is implemented with Zigbee®. “Zigbee” refers a set of specificationsfor communication protocols for digital radios built around theInstitute of Electrical and Electronic Engineers (IEEE) standard802.15.4 wireless protocol.

In another embodiment, the body area network 101 is implemented withBluetooth®. “Bluetooth” refers to another set of specifications forcommunication protocols for a personal area networks (PAN). Note thatZigbee and Bluetooth are exemplary communication protocols that can beused, and other communication protocols and specifications can be usedin other embodiments of the body area network 101.

In one embodiment, the system 100 further comprises a medical server109, which is communicatively coupled to the controller 102 via anetwork 108. The network 108 may be any type of network known in theart, including, for example, Ethernet, analog cellular, digitalcellular, short range radio wireless, Wi-Fi, WiMax, broadband over powerline, coaxial cable, and the like.

During operation, the controller 102 communicates with the plurality ofsensors 103-106 to collect physical and/or physiological data related tothe body 107 of the user 110. The data collected can be uneventful andhistorical in nature, and such data can be used to as a physical and/orphysiological baseline for the user 110. In addition, the sensors103-106 may also be triggered to perform specific data collectionfunctions in response to an uncharacteristic event. Such data may betransmitted to the controller 102, and the controller 102 can, in turn,transmit the data collected in response to the event to the medicalserver 109.

In one embodiment, the medical server 109 may be monitored. Thus, inresponse to the uncharacteristic event, medical personnel may be alertedso that the user can obtain requisite medical attention. In anotherembodiment, the controller 102 relays information obtained from thesensors 103-106 to the medical server. In this regard, the medicalserver 109 may comprise a web portal (not shown), email and textingcapabilities for interface with the user 110 and control of the system100.

The wireless sensor network system 100 performs a variety of functionsrelated to the acquisition and analysis of the data collected. Thesefunctions are described in more detail hereafter.

FIG. 2 depicts an exemplary controller 102 of the present disclosure.The exemplary controller 102 generally comprises processor 200, displaydevice 203, input device 206, network device 207, and controller bodyarea network communication device 205. Each of these componentscommunicates over local interface 202, which can include one or morebuses.

Controller 102 further comprises control logic 204 and controller sensordata 210. Control logic 204 and sensor data 210 can be software,hardware, or a combination thereof. In the exemplary controller 102shown in FIG. 2, control logic 204 and sensor data 210 are shown assoftware stored in memory 201. Memory 201 may be of any type of memoryknown in the art, including, but not limited to random access memory(RAM), read-only memory (ROM), flash memory, and the like.

As noted hereinabove, control logic 204 and sensor data 210 are shown inFIG. 2 as software stored in memory 201. When stored in memory 201,control logic 204 and sensor data 210 can be stored and transported onany computer-readable medium for use by or in connection with aninstruction execution system, apparatus, or device, such as acomputer-based system, processor-containing system, or other system thatcan fetch the instructions from the instruction execution system,apparatus, or device and execute the instructions.

In the context of the present disclosure, a “computer-readable medium”can be any means that can contain, store, communicate, propagate, ortransport the program for use by or in connection with the instructionexecution system, apparatus, or device. The computer readable medium canbe, for example but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or propagation medium

Processor 200 may be a digital processor or other type of circuitryconfigured to run the control logic 204 by processing and executing theinstructions of the control logic 204. By way of example, the processor200 may be an Advanced RISC Machine ARM 7, ARM 9, Intel® PXA901, Intel80386, Freescale® HCx08, Freescale® HCx11, Texas Instruments® MSP430, ora digital signal processor (DSP) architecture. Note that RISC refers to“Reduced Instruction Set Computer.” The processor 200 communicates toand drives the other elements within the controller 102 via the localinterface 202.

In addition, controller body area network communication device 205 maybe, for example, a low-powered radio device, e.g., a radiosemiconductor, radio frequency antenna (RF antenna) or other type ofcommunication device, which communicatively couples the controller 102with the sensors 103-106 (FIG. 1). The control logic 204 communicatesbi-directionally through the controller body area network communicationdevice 205 with the plurality of sensors 103-106.

The display device 203 is a device for visually communicatinginformation to the user 110 (FIG. 1). The display device 203 may be, forexample, a backlit liquid crystal display (LCD) screen (not shown),which is touch-sensitive for operation with a stylus (not shown). Othertypes of display devices may be used in other embodiments of the presentdisclosure.

An operating system 211, which may be, for example, Windows Mobile®, maydisplay data, including commands, to the user 110 (FIG. 1) via a seriesof graphical user interfaces (GUIs) (not shown). The GUIs may comprise aplurality of scalable windows (not shown) that display, for example,data indicative of commands or analysis of information.

Controller sensor data 210 includes any data stored on the controller102 related to the system 100 (FIG. 1), including data related to thesensors 103-106. Such sensor data 210 may include, for example, dataindicative of particular readings or historical data of a plurality ofreadings received from one or more of the sensors 103-106 (FIG. 1). Inaddition, sensor data 210 may include configuration data specific to theuser 110 that is using the controller 102.

Note that a “reading” refers to any data that is received from thesensors 103-106 that represents physical or physiologicalcharacteristics of the body 107 (FIG. 1) of the user 110. As describedfurther herein, a reading may be requested from a sensor 103-106 by thecontroller 102 or a reading may be transmitted at a particular timeinterval pre-determined for the particular sensor 103-106 from which thecontroller 102 is requesting data.

The input device 206 enables the user 110 to enter data into thecontroller 102. In one embodiment, the input device 206 is a keyboard,and the user 110 uses the keyboard to type data into the handheld, whichcan be stored as sensor data 210, described hereinabove. In addition,the display device 203 may be a touch screen (not shown), and thecontroller 102 may comprise a stylus (now shown) that the user 110 canused to enter data via the touch screen (not shown).

In one embodiment, the controller 102 may comprise a speaker device 204and a microphone 212. In such an embodiment, the controller 102 mayaudibly communicate commands and/or information to the user 110 via thespeaker device 204. Furthermore, the user 110 may provide information tothe controller 102 by speaking into the microphone 212.

During operation, the control logic 204 configures the system 100. Inone embodiment, the user 110 may take some controller-directed action,e.g., placing sensors on the body 107, however, in other embodiments,the control logic 204 can autonomously discover the sensors 103-106without action by the user 110.

In this regard, the control logic 204 initially discovers the sensors103-106 that are proximate to the controller 102 for use in the bodyarea network 101. To discover the sensors 103-106, the control logic 204broadcasts a wireless discovery message. A “wireless discovery message”refers to a message that can be transmitted through the body areanetwork 101 (FIG. 1) by the control logic 204 through the controllerbody area network communication device 205. This message is received bythe sensors 103-106 and handled by each sensor 103-106 accordingly.Communication protocols, e.g., Zigbee® and Bluetooth®, define such awireless discovery message. Notably, however, any type of communicationprotocol known in the art that includes a wireless discovery message maybe used in other embodiments.

As an example, the wireless discovery message, by its particular format,may request all sensors 103-106 that receive the wireless discoverymessage to respond. In one embodiment, each sensor 103-106 transmits, inresponse to the wireless discovery message, data indicative of itsunique hardware address associated with the responding sensor 103-106.Thus, the control logic 204 can uniquely identify each discoveredsensor.

Upon receipt of a response from each sensor 103-106, the control logic204 stores as controller sensor data 210 data indicative of eachresponding sensor 103-106 and their corresponding hardware address. Oncethe discovery process is complete, the control logic 204 has identifiedsensors 103-106 by their corresponding hardware address and storedcontroller sensor data 210 reflecting the characteristics of each sensor103-106.

Once the control logic 204 discovers the sensors 103-106 available tothe system 100, the control logic 204 assigns to each sensor a logicalfunction within the body area network 101. Given a homogeneous set ofwireless sensors 103-106 with sufficiently similar capabilities, suchthat any two sensors 103-106 can be interchanged, the control logic 204prompts the user 110 to place the sensors 103-106 on the body 107. Inone embodiment, the control logic 204 may prompt the user 110 visuallyvia a graphical user interface (GUI) displayed to the display device203. In another embodiment, the control logic 204 may prompt the user110 audibly via the speaker device 204. Other prompts may be used toinstruct the user 110 to place the sensors 103-106 on the body 107 inother embodiments.

The control logic 204 prompts the user 110 in sequence to place a sensor103-106 on the body 110 in a specified location. As an example, thecontrol logic 204 may prompt the user with the following command: “Placea sensor on your chest.” In one embodiment, each sensor 103-106comprises an accelerometer (not shown) for motion sensing. Thus, theuser 110 need not know the identity of the sensor the user 110 selects.Instead, the control logic 204 monitors the sensors 103-106 therebyautonomously requesting measures of movement, and control logic 204detects which sensor 103-106 is experiencing the greatest movement basedupon the measures received. In this regard, the user 110 is free toselect a sensor 103-106 at random and place it in the locationidentified in the command. The control logic 204 then associates thehardware address with the location in the sensor data 210.

The control logic 204 then prompts the user 110 with another command:“Place a sensor on your right wrist.” Again, the control logic 204detects movement of the sensor 103-106 that is being placed, and recordsas sensor data 210 the hardware address associated with the movingsensor 103-106 with the location identified in the command. The controllogic 204 continues this process until each of the sensors 103-106discovered during the discovery process is placed on a location on thebody 107 of the user 110.

In one embodiment, during assignment of sensors 103-106 with bodylocations, the control logic 204 dynamically reconfigures each sensor103-106 to perform a function specific to the location on which thesensor 103-106 was placed. For example, the sensor 103-106 that isplaced on the chest is dynamically reconfigured, for example, to monitorheart rate. As another example, the sensor 103-106 that is placed on thewrist is reconfigured, for example, to monitor oxygen saturation. Inthis regard, the control logic 204 transmits commands to the sensors103-106 specifying particular algorithms to use. The control logic 204also can transmit wireless firmware upgrades of each sensor 103-106.

In another embodiment, the control logic 204 completes the assignmentprocess prior to reconfiguring the sensors 103-106. Once assignment ofeach sensor 103-106 to a particular location is complete, the controllogic 204 reconfigures each sensor 103-106 to perform a functionspecific to the location on which the sensor 103-106 is placed.

In another embodiment, the control logic 204 also transmits informationfor dynamically reloading a microprocessor (not shown), which is part ofthe sensor 103-106. In this regard, the system 100 isresource-constrained, and it may be difficult for each sensor 103-106 toinclude each possible algorithm that might be needed based on anarbitrary location assignment as described hereinabove. In this case,the control logic 204 dynamically reloads the microprocessor instructioncode to implement the desired function associated with the locationarbitrarily selected by the user 110 for the particular sensor 103-106.

In another embodiment of the system 100, the sensors 103-106 mayincorporate temperature sensors (not shown). The control logic 204 mayobtain data from the sensors 103-106 indicative of the temperatureincreased realized by placing the sensor 103-106 on the body 107. Thecontrol logic 204 may use the temperature increase to determine whichsensor 103-106 has been placed on a particular location on the body 107.

In another embodiment of the system 100, the sensors 103-106 useintegrated electrodes for radiating the human body. When in contact withthe skin, a small charge will generate a small current through the humanskin, thus effectively measuring skin or body impedance. This current isdetectable by the sensor 103-106, and the control logic 204 candetermine that the sensor 103-106 is now in contact with human skin.

In another embodiment of the system 100, sensor discovery and assignmentare an integrated function. This is especially useful if the sensors103-106 are allowed to enter a low power state when not in use. In thiscase, the sensors 103-106 will originate communications with the controllogic 204 of the controller 102 once they recognize an in-use event suchas being placed on the body 107. An in-use event can be detected by thecontrol logic 204 by listening for messages received from the sensors103-106 and interpreting those messages received.

In addition to performing discovery and configuration of the system 100,the control logic 204 further performs calibration of the system 100. Asdescribed hereinabove, one or more of the sensors 103-106 may be used todetermine a user's orientation or position through accelerometers. Forexample, data obtained from accelerometers on one or more sensors103-106 may be used to indicate whether the user 110 is in a supineposition or standing in an upright position.

Thus, in one embodiment of the present disclosure, the control logic 204self-calibrates the system 100 to compensate for any offset caused bythe placement of the sensors 103-106 on the user's body. Notably, it isthe orientation of the user 110 wearing the sensors 103-106 in thesystem 100 that is relevant for determining movement of the user 110.However, placement of the sensors 103-106, because placement isarbitrary, may tend to effect readings made with respect to movement byskewing orientation of the actual user 110. Therefore, the control logic204 calculates and calibrates a relative orientation.

As described hereinabove, the control logic 204 performs calibration toensure that sensor readings for detecting movement are accurate in lightof the placement of sensors 103-106 on the body 107 of the user 110.Calibration is now described in more detail with reference to FIGS. 3-7.To perform calibration, the control logic 204 instructs the user 110 tostand in an upright position, communicating with the user 110 asdescribed hereinabove. When the user 110 is requested to stand in anupright position, the control logic 204 assumes that the user's body 107is oriented along the X′, Y′ and Z′ axes as shown in FIG. 3.

The control logic 204 then determines the actual orientation of thesensors 103-106 and calculates a calibrating correction factor. Withreference to FIG. 4, the sensor 103 is shown as placed upon the chestarea of the body 107. The sensor 103 is shown as rotated forward aboutthe Y axis creating two angle offsets: θ (angle between the sensor's Xaxis and the user's X′ axis) and Φ (angle between the sensor's Z axisand the user's Z′ axis). The control logic 204 calculates thecalibration angles θ and Φ by applying a theorem that the static effectsof gravity will only affect the Z′ axis in a magnitude of 1 g.

Thus, with reference to FIG. 5, gravity vector 500 represents the effectof gravity relative to the sensor's axis system (X′,Y′, and Z′).Further, FIG. 6 depicts the gravity vector 600 as it relates to thesensor 103. Therefore, the control logic 204 can calculate the angles θand Φ by receiving measurements from the sensor 103 in the X directionand the Z direction and calculating as follows:

$\theta = {\sin^{- 1}\left( \frac{x_{measured}}{1g} \right)}$$\varphi = {\cos^{- 1}\left( \frac{z_{measured}}{1g} \right)}$

Once the angles θ and Φ are calculated, the control logic 204 can usethe calculated offset angles θ and Φ to determine the orientation of thebody 107 of the user 110 as the body 107 moves. In this regard, as thebody 107 moves, the control logic 204 obtains new measurements from oneor more sensors 103-106, and the control logic 204 uses the offsetangles θ and Φ to calculate the orientation of the body 107 as it moves.

Thus, as an example, with reference to FIG. 7, the user 110 moves hisbody 107 and creates an angle, γ, between the original calibrated Z′axis and true vertical Z″ axis. The control logic 204 can calculate γfrom the sensor measurements as follows:

$\gamma = {{\cos^{- 1}\left( \frac{z_{measured}}{1g} \right)} - \varphi}$

Note that any of the axes X′, Y′, and Z′ may have associated with it aninitial offset depending upon the location of the sensor 103-106 (FIG.1). Only an offset θ and Φ in relation to the X′ and Z′, respectively,are shown calculated in the example provided hereinabove. However, inaddition, there may also be an offset Ω corresponding to the Y′ axis.Furthermore, FIG. 7 illustrates a calculation of only an angle γ for theZ′ axis, however angles α and β may be calculated for anglescorresponding to X′ and Y′, respectively.

Notably, given three initial offsets θ, Ω, and Φ with respect to the X′,Y′, and Z′ axes respectively, the user's angles of orientation α, β, andγ with respect to X′, Y′, and Z′ respectively can be calculated asfollows:

$\alpha = {{\sin^{- 1}\left( \frac{x_{measured}}{1g} \right)} - \theta}$$\beta = {{\sin^{- 1}\left( \frac{y_{measured}}{1g} \right)} - \Omega}$$\lambda = {{\cos^{- 1}\left( \frac{z_{measured}}{1g} \right)} - \varphi}$

This method is directly applicable to cases where sensor nodes areplaced upside down (180 degree rotation). This method is also extensibleto other zero-state configurations (other than standing) such assitting, lying, or combination of multiple initial state calibrations.

Furthermore, the sensor 103-106 for detecting motion may also be subjectto a wide range of factors, which could degrade performance. Notably,temperature, humidity, and power supply voltage can affect sensorperformance. When affected by such factors, the control logic 204 maydetermine the actual affect of the relevant factor, e.g., temperature,and define a transfer function for describing the sensor readings whenthe sensor 103-106 is affected. When defining a transfer function ispossible, other sensors can be used to collect information for thetransfer function so that the control logic 204 can compensate for theaffects as these factors may vary over time and change after the initialcalibration.

As an example, an ambient air temperature sensor (not shown) could beused to obtain varying temperature readings. The control logic 204 canuse these varying temperature readings with the transfer functiondefined in order to compensate for the affects of the varyingtemperature. In addition, the same method could be used with a humiditysensor to compensate for degradation of the motion sensor 103-105 as afunction of humidity, and a voltage measuring sensor to compensate fordegradation of the motion sensor as a function of supply voltage.

FIG. 8 depicts an exemplary sensor 103 of the present disclosure. Asindicated hereinabove, in one embodiment the sensors 103-106 aresubstantially similar. In this regard, the sensors 103-106 may becharacteristically homogeneous, however if they differ, they coulddiffer in the type of sensing hardware employed and/or the softwareemployed to collect the data. For purposes of brevity, only sensor 103is discussed hereinafter. However, the other sensors 103-106 behavesubstantially similar.

The exemplary sensor 103 generally comprises processor 800, a sensingdevice 806, and sensor body area network communication device 805. Eachof these components communicates over local interface 802, which caninclude one or more buses.

Sensor 103 further comprises sensor logic 804 and sensor data 810.Sensor logic 804 and sensor data 810 can be software, hardware, or acombination thereof. In the exemplary sensor 103 shown in FIG. 8, sensorlogic 804 and sensor data 810 are shown as software stored in memory801. Memory 801 may be of any type of memory known in the art,including, but not limited to random access memory (RAM), read-onlymemory (ROM), flash memory, and the like.

As noted hereinabove, sensor logic 804 and sensor data 810 are shown inFIG. 8 as software stored in memory 801. When stored in memory 801,sensor logic 804 and sensor data 810 can be stored and transported onany computer-readable medium for use by or in connection with aninstruction execution system, apparatus, or device, such as acomputer-based system, processor-containing system, or other system thatcan fetch the instructions from the instruction execution system,apparatus, or device and execute the instructions.

In the context of the present disclosure, a “computer-readable medium”can be any means that can contain, store, communicate, propagate, ortransport the program for use by or in connection with the instructionexecution system, apparatus, or device. The computer readable medium canbe, for example but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or propagation medium.

Processor 800 may be a digital processor or other type of circuitryconfigured to run the sensor logic 804 by processing and executing theinstructions of the sensor logic 804. By way of example, the processor800 may be an Advanced RISC Machine (ARM) 7, ARM 9, Intel® PXA901, Intel80386, Freescale® HCx08, Freescale® HCx11, Texas Instruments® MSP430, ora digital signal processor (DSP) architecture. Note that RISC refers to“Reduced Instruction Set Computer.” The processor 800 communicates toand drives the other elements within the sensor 103 via the localinterface 802.

In addition, sensor body area network communication device 805 may be,for example, a low-powered radio device, e.g., a radio semiconductor,radio frequency antenna (RF antenna) or other type of communicationdevice, that communicatively couples the sensor 103 with the controller102 (FIG. 1). The sensor logic 804 communicates bi-directionally throughthe sensor body area network communication device 805 with thecontroller 102.

The sensing device 806 may be, for example, heart waveforms sensors,respiration sensors, and muscle activity sensors, SpO₂ sensors, and/orGSR sensors. Further, the sensing device 806 may be an electrode fordetecting current from the skin (not shown) of the body 107. These areexemplary types of sensing devices, however, other types of sensingdevices may be used in other embodiments of the present disclosure.

Sensor data 810 refers to data related to the sensing device 806. Inthis regard, the sensor data 810 may be, for example, data indicative ofreadings received from the sensing device 806. In addition, sensor data810 may encompass configuration data specific to the user 110 (FIG. 1)that is using the controller 102 (FIG. 1) and the sensor 103.

In one embodiment, the controller 102 (FIG. 1) and the sensor 103 workin conjunction to perform event management and contextual event datadelivery. Event management refers to the receipt, storage, andidentification of data indicative of an event. An “event” refers to anoccurrence evidenced by a change in data detected by the sensing device806.

In one embodiment, in order to accomplish event management, the sensorlogic 804 assesses a timestamp for each reading obtained by sampling asignal received by the sensing device 806. The data that receives thetimestamp is not immediately transmitted to the controller 102 (FIG. 1).Instead, the sensor logic 804 defers transmission of the data until theparticular sensor's assigned transmission interval. Such time-stampeddata indicative of the reading is stored as sensor data 810, and suchtimestamp is associated with the reading prior to any on-sensoroperations performed on the reading to determine whether an event hasoccurred.

In addition, the sensor logic 804 performs contextual data delivery.“Contextual data delivery” refers to the transmission of data related toan event, as described hereinabove, to the controller 102.

In one embodiment, in order to perform contextual data delivery, thesensor logic 804 stores raw data in a raw data history buffer 811.Further, the sensor logic 804 performs operations on the data stored inthe raw data history buffer 811 to determine if an event has occurred.As an example, a sensing device 806 may be configured to detect ananalog heart rate signal, and the sensing device 806 samples the signalperiodically to obtain a reading. Once a reading is obtained, the sensorlogic 804 stores the raw data indicative of the reading in the buffer811. The sensor logic 804 may analyze a plurality of readings over apre-determined time period, for example five minutes. If there is asharp increase in the value of the reading, this may indicate an event.Thus, the sensor logic 804, after its analysis to determine that anevent may have occurred, may transmit the raw data in the buffer 811 tothe controller 102.

In another embodiment, the sensor logic 804 transmits readings andassociated timestamps to the controller 102. The controller 102 detectsan event and transmits a message to the sensor 103 to enable raw datamode thereby allowing the sensing logic 806 to continually transmit rawdata from the history buffer 811 to the controller 102 until thepertinent event has expired.

To further illustrate event management performed by the sensor 103 andthe controller 102, FIG. 9 depicts a timeline 901 and a correspondingtimeline 902. Timeline 901 depicts a signal 900 received by the sensingdevice 806 (FIG. 8) over time, T₀ to T₁₃. Timeline 902 depictsfunctionality of the sensor logic 804 over time, T₀ to T₁₃.

In the illustration, the sensor 103 detects a change in the monitoredsignal 900 (event) such as environmental data, physiological data, ormachine health data. Such a change is evidenced by a spike 903 in themonitored signal 900. Based on a network time reference, the sensorlogic 804 assesses an “original timestamp” to the event occurrence at T₃when the spike 903 occurs. The original timestamp is prior to anyon-sensor processing time, independent of latency in utilizing anyon-sensor resource (memory or other), and independent of networktransmission time which can vary widely depending on the organization ofthe network and the variability inherent in heterogeneous networks.Notably, at time T₆ the sensor logic 804 detects the event and gives theevent description. However, algorithm latency has occurred prior to thedetection and description.

When the event detection algorithms require some finite execution time,as illustrated, the timestamp provided by the sensor logic 804 isindependent of algorithm latency. Thus, in one embodiment, the sensorlogic 804 assesses timestamps to each data point of sampled signal 900.When the sensor logic 804 determines the occurrence of an event, theearlier data point timestamp (assessed on the original data point) canbe used as the timestamp for the occurrence of the event.

In one embodiment, the control logic 204 (FIG. 2) of the controller 102(FIG. 1) assigns specific time intervals for each sensor's respectivetransmission or receptions. FIG. 10 depicts a block diagram of acommunication frame 1000 in accordance with such an embodiment.

The exemplary communication frame 1000 assumes the sensors 103-106(FIG. 1) are all-inclusive of those sensors in the body area network 101(FIG. 1) for the example. Each sensor 103-106 collects data related tothe signals that each sensor monitors. In one embodiment, the controllogic 204 (FIG. 2) defines the frame 1000 to encompass a node commandblock, which can include binary digits reflecting a command to one ormore of the sensors 103-106. In addition, the control logic 204 definesa block of time slots TimeSlot_(sensor103)-TimeSlot_(sensor106).Notably, the control logic 204 would define a timeslot for transmissionand reception for each sensor 103-106 in the node. In the example usedthroughout the present disclosure, four sensors 103-106 are shown in thebody area network 101. Thus, for continuity, four sensors 103-106 areused in the example provided in FIG. 10.

In such an embodiment, the control logic 204 assigns aTimeSlot_(sensor103) to the sensor 103, which may be a heart beatsensor. In addition, the control logic 204 assigns TimeSlot_(sensor104)to the sensor 104, which may be a motion sensor.

Thus, an event occurs, for example a heart beat event occurs, which isdetected by sensor 103, and a step event occurs, which is detected bysensor 104. The sensors 103 and 104 do not immediately transmit data tothe controller 102 indicative of the heartbeat and step events. Instead,the sensors 103 and 104 wait until their respective time slots occur,and transmit the data during their respective time slots.

As described hereinabove, the event descriptions can be time stamped bythe sensor logic 306 as they occur so as to not incur latency and jitterfrom deferred transmission artifacts. This allows faithful reproductionof the original events with proper timestamps independent of the actualtransmission time.

Such an embodiment may require a synchronized network time reference, asdescribed hereinabove. Thus, each sensor 103-106 and the controller 102operate from a synchronized clock cycle. Thus, each sensor 103-106 knowswhen its corresponding time slot is ready for transmission and/orreception. In such an embodiment, a synchronization protocol, e.g., theFlooding Time Synchronization Protocol (FTSP), can be used to distributea common time reference.

In another embodiment of the wireless sensor network system 100,reliability of the network transmission is not guaranteed. Sensors103-106 can lose power, intermediate nodes (not shown) in multi-hopnetworks may exit without warning, in mobile networks the networktopology can change without warning or leave range entirely, or outsidefactors may impair the ability of the wireless media to perform asexpected. These conditions can be detected so that the sensor logic 804can maintain the state of the network 101. Reliability and performanceare improved when the sensors 103-106 perform autonomous detection ofnetwork changes.

In one embodiment, the controller 102 transmits periodic beaconmessages. The sensor logic 804 receives the beacon messages from thecontroller 102 via the sensor body area communication device 805, andinfers successful connectivity with the controller 102 by receipt of theperiodic beacon message. When the beacon message arrives in a timelyfashion, the sensor logic 804 can assume the network is operable;conversely when an allowable time period expires without beacon arrival,the sensor logic 804 can assume that the network is inoperable.

In another embodiment, the control logic 204 transmits an explicitacknowledgement message to verify that a message transmitted from thesensor 103-106 has been received by the controller 102 (FIG. 1). Thus,if the message is lost by an intermediate node (not shown) in thenetwork 101 where the network 101 supports one hop or multi-hoptransmission, the sensor logic 804 does not receive the acknowledgementmessage. In such a scenario, the sensor logic 804 employs a timeoutmechanism that determines that the acknowledgement message did notarrive and behaves accordingly. Note that it is possible for one or moremessages to be en route at any given time and the messages (or events)must be preserved as sensor data 810 (FIG. 8) on the sensor 103-106 andcannot be retired until the message or messages are acknowledged.

FIG. 11 depicts a memory hierarchy for a sensor 103-106 (FIG. 1) andillustrates another embodiment of an event management method. In oneembodiment of the system 100 (FIG. 1), the sensor logic 804 (FIG. 8)minimizes latency by transmitting event data when the event occurs.Based on autonomous detection of network changes, as describedhereinabove, data indicative of events are stored in memory 801 (FIG. 8)for immediate transmission or for buffering to raw data history buffer811 (FIG. 8).

In memory constrained systems, the available memory may have varyingcosts in terms of power and time latency such that the memory devicescan be arranged hierarchically in order of preference. Moreover, eventsshould first be buffered in the lowest penalty memory device, and, onlyon exhaustion of this resource, begin buffering in the next lowestpenalty memory device, and so on. As an example, the sensor logic 804can store the data in memory 801 hierarchically from lowest penalty tohighest penalty, for example as follows: on-chip RAM, off-chip RAM,on-chip flash, off-chip flash. One embodiment places value on minimizinglatency in delivering messages to the controller 102. The sensors103-106 may be memory-constrained and comprise multi-tiered memorycomponents, including an output queue 1111, “Tier 1 Memory” 1101, “Tier2 Memory” 1102 through “Tier N Memory” 1103.

It is recognized that in real-time applications the memory devices 1101,1102, and 1103 may incur time penalties for storage and retrieval. As anon-limiting example, flash memory may be employed with erase andprogram times measured in tens or even hundreds of milliseconds. Whenthe application cannot tolerate this latency, a method for overlappingthe operations is employed so that lowest penalty memory device isalways available for event buffering. This is accomplished by using adouble buffered approach at each tier in the memory hierarchy. Thus, ateach tier 1101-1103 double buffers 1105/1106, 1107/1108, and 1190/1110are maintained.

During operation, when a threshold number of events is reached, a blockof events are moved, i.e., copied, to next tier storage while stillmaintaining a separate first-tier resource buffer for subsequent eventsthat occur prior to completion of the move. The depth of the buffers1105 and 1107 is selected to accommodate the maximum rate of eventoccurrence given the worst-case latency on the memory device. In oneembodiment, the size of the buffers 1105 and 1107 is chosen forefficiency and optimized to be a multiple of the natural block size ofthe next-tier memory device.

In one embodiment, when the sensor logic 804 autonomously detects theavailability of the network 101 (FIG. 1), the sensor logic 806 willtrigger retiring buffered events in a first in, first out (FIFO)fashion. Where retrieving event from higher tier memory devices has alarge penalty, the buffered event blocks can first be copied into thelowest penalty memory device forming the output queue 1111. In such anembodiment, once one event is successfully transmitted by the sensorbody area communication device 805, the event data can be moved from ahigher tier device, e.g., Tier N Memory 1103, and transmitted from thesensor 103 (FIG. 8) so that the event data can be permanently retired.

Thus, the sensor logic 804 defines and timestamps an event 1100. It isstored in the buffer 1106, and as new events are received from thesensor logic 804, the event 1100 is moved, i.e., copied to the secondbuffer 1105. As the resources are used up in Tier 1 Memory 1101, theevent 1100 is moved to Tier 2 Memory 1107, and so on. When the sensorlogic 804 decides to transfer data related to a particular event, thedata is moved to the output queue 1111, and then to the sensor body areacommunication device 805.

Likewise, autonomous detection of the network's availability willtrigger the oldest events to begin transmission and to begin effectivelyretiring these buffered events in a first in, first out (FIFO) fashion.In cases where retrieving events from higher tier memory devices has alarge penalty, it is recognized that buffered event blocks can be firstbe copied into the lowest penalty memory device forming an output queue.Successful transmission of one block will trigger the fetch of the nextoldest block and so on so that old events are systematically moved fromhigher tier devices and transmitted off-sensor so that they can bepermanently retired.

Once the body area network 101 is operational for a period of time, allthe event data in the higher tiers have been retired, events data can bequeued directly to the output queue 1111 to maintain real-timetransmission capability. If the network becomes inoperable again, eventdata can then be stored again in the tiered fashion describedhereinabove.

In addition to event management, the system 100 performs contextualevent data delivery. “Contextual event data delivery” refers to thefunction of recognizing and extracting data indicative of pertinentevents in order to maximize scalability of the system 100 and minimizepower consumption on the sensor 103-106.

Notably, power consumption and other resources in the system 100 can beconserved by performing in-system real-time signal processing to extractfeatures and events directly on the sensor node and avoiding expensivemultiple transmissions for post data reduction. Also, the more dataavailable, the better a signal can be faithfully reproduced. In manycases a sensor 103-106 monitors a given signal or parameter for extendedperiods of time only looking for a specific event occurrence which mayhappen infrequently. In such cases, it would be inefficient to transmitall raw data indicative of the event as the end user (not shown) mayonly be interested in inspection of a small window of time surroundingthe event.

In one embodiment, the sensors 103-106 in the wireless network 101perform a substantial level of on-sensor processing extracting only dataindicative of particular events. Upon detection of an event by thesensor 103-106, the sensor 103-106 autonomously transitions to raw datamode so as to provide maximum context for the event of interest. Aftersome period of time the sensor 103-106 autonomously returns to reduceddata (event only) mode.

In one embodiment, the sensor 103-106 includes a circular history buffer(not shown) which continuously stores raw event data for some finiteperiod of time. In such an embodiment, when the sensor logic 804 detectsan event, the sensor 103-106 transmits the circular history buffer,which represents context prior to the event of occurrence. In addition,the sensor logic 804 transmits raw event data following the event ofinterest. The amount of data transmitted after the event may vary. Inthis regard, it may be an amount defined by the number of bits to betransmitted or defined by a time period of collection.

FIG. 12 depicts one embodiment of the functionality of system 100related to contextual event data delivery. As has been describedthroughout, controller 102 communicates with the sensor 103 via the bodyarea network 101. In the example in FIG. 12, the sensor 103 is employedin a health monitoring application wherein the sensor 103 continuouslymonitors heartbeats in an attempt to look for arrhythmic events,heart-beat irregularities, or some other pertinent event. A treatingphysician may prefer to examine the raw heart waveforms immediatelyprior to and immediately following the arrhythmic event. The sensingdevice 806 (FIG. 8) receives regular heartbeats and the sensor logic 804(FIG. 8) transfers data indicative of the heartbeats 1200, 1201, and soon, to the controller 102. In one embodiment, the data indicative of theheartbeats 1200, 1201, and so on, can be sent, via the network 108(FIG. 1) to the medical server 109 (FIG. 1) where a physician orcaregiver may inspect further.

When the sensing device 806 detects an arrhythmic event, the sensorlogic 804 transmits data indicative of the arrhythmic event 1202 to thecontroller 102. The sensor logic 804 then transmits raw data 1203continuously to the controller 102 so that the user can review theactual raw data that is being obtained by the sensing device 806.

FIG. 13 is a block diagram depicting an exemplary software architectureand functionality for implementing the example depicted in FIG. 12. Thesensor logic 804 receives raw data in response to an interrupt serviceroutine (ISR). The sensor logic 804 stores the data in a history buffer1300. Exemplary history buffers include a ring buffer (not shown) or afirst in first out (FIFO) queue (not shown) with an overflow policy thatretires old samples rather than new samples.

The history buffer 1300 stores the previous N samples of raw data whereN represents the maximum number of samples of raw data that can bestored in the buffer 1300. The raw data samples are also provided asinput to application-specific sensor logic 804, and the sensor logic 804employs event detection algorithms 1301 for detecting a pre-definedevent, for example an arrhythmic occurrence if the sensor logic 804 isdesigned to process heartbeat signals. In addition, the sensor logic 804employs a transmit algorithm 1302 for retrieving event data from thehistory buffer 1300 and transmitting it to the controller 102.

Upon detection of an event by the event detection algorithm 1301, thetransmit algorithm is signaled to begin transmission of M raw samples. Mcan be set by the needs of the application, but typically M=2N, so thatupon event detection N preceding samples, where N is the depth of theexisting history buffer prior to event detection, and the next Nfollowing samples will be transmitted thus providing balanced context ofthe specific event.

FIG. 14 depicts another embodiment of the present disclosure related tocontext event data delivery. As has been described throughout,controller 102 communicates with the sensor 103 via the body areanetwork 101. In the example in FIG. 14, the sensor 103 is employed in ahealth monitoring application wherein the sensor 103 continuouslymonitors heartbeats in an attempt to look for arrhythmic events,heart-beat irregularities, or some other pertinent event similar to thedescription with reference to FIG. 12.

The sensing device 806 (FIG. 8) receives regular heartbeats and thesensor logic 804 (FIG. 8) transfers data indicative of the heartbeats1400, 1401, and so on, to the controller 102. When the sensing device806 detects an arrhythmic event, the sensor logic 804 transmits dataindicative of the arrhythmic event 1402 to the controller 102. Inresponse, the control logic 204 transmits a message 1404 requesting rawdata mode.

In response to the request 1404, the sensor logic 804 then transmits rawdata 1403 to the controller 102 so that the user can review the actualraw data that is being obtained by the sensing device 806. The sensorlogic 804 continues to transmit the raw data 1403 until the controllogic 204 transmits a message 1405 requesting that the raw data mode beterminated.

FIG. 15 is a flowchart depicting exemplary architecture andfunctionality of the sensor logic 804 (FIG. 8). The sensor logic 804performs context data deliver from the sensors 103-106 (FIG. 1) to thecontroller 102 (FIG. 1). In this regard, the sensor logic 804 detects asignal via a sensor 103-106 coupled to a body 107 (FIG. 1).

The sensor logic 804 monitors the signal for an event as indicated instep 1501. Upon receiving information indicating an event has occurred,the sensor logic 804 transmits event data indicative of the event to acontroller 102 (FIG. 1) via a network (101), as indicated in step 1502.

This invention may be provided in other specific forms and embodimentswithout departing from the essential characteristics as describedherein. The embodiments described above are to be considered in allaspects as illustrative only and not restrictive in any manner.

As described above and shown in the associated drawings, the presentinvention comprises wireless sensor network and method for using thesame. While particular embodiments of the invention have been described,it will be understood, however, that the invention is not limitedthereto, since modifications may be made by those skilled in the art,particularly in light of the foregoing teachings. It is, therefore,contemplated by the appended claims to cover any such modifications thatincorporate those features or those improvements that embody the spiritand scope of the present invention.

1. An system, comprising: a sensing device for detecting a signal; andlogic configured to discover the sensing device at a location on auser's body, the logic further configured to monitor the signal for anevent and upon receiving information indicating an event has occurredthe logic is further configured to transmit event data indicative of theevent to a controller via a network.
 2. The system of claim 1, whereinthe event data comprises pre-event data indicative of the signaldetected prior to the event.
 3. The system of claim 2, wherein the eventdata comprises post-event data indicative of the signal detectedsubsequent to the event.
 4. The system of claim 1, wherein the logic isfurther configured to continuously store, in memory, event dataindicative of an event and non-event data indicative of the signal whenno event is occurring.
 5. The system of claim 4, wherein the logic isfurther configured to transmit data indicative of the event data and thenon-event data from memory to a controller when an event is detected. 6.The system of claim 5, wherein the logic is further configured totransmit pre-event data and post event data from a pre-determined timeperiod before a detected event and after a detected event from memory tothe controller when an event is detected.
 7. The system of claim 1,wherein the logic is further configured to transmit event dataindicative of the signal upon detection of the event.
 8. The system ofclaim 7, wherein the controller transmits a signal to the sensor basedupon detection of an event requesting that event data be transmitted tothe controller.
 9. The system of claim 8, wherein the controllertransmits a signal to the sensor requesting that the event data beterminated after a pre-determined period of time.
 10. The system ofclaim 1, wherein the sensor transmits event data indicative of aplurality of the signal upon receipt of a signal from the controller.11. The system of claim 10, wherein the sensor terminates transmissionof event data upon receipt of a signal from the controller.
 12. Amethod, comprising the steps of: discovering a sensor at a location on auser's body; detecting a signal via the sensor coupled to the user'sbody; monitoring the signal for an event; and upon receiving informationthat an event has occurred, transmitting event data indicative of theevent to a controller via a network.
 13. The method of claim 12, furthercomprising the step of transmitting a pre-determined amount of pre-eventdata obtained prior to the event to the controller.
 14. The method ofclaim 13, further comprising the step of transmitting a pre-determinedamount of post-event data indicative obtained after the event to thecontroller.
 15. The method of claim 12, further comprising the step ofcontinuously storing signal data indicative of the signal in memory. 16.The method of claim 15, further comprising the step of transmitting thesignal data from memory to a controller when the event is detected. 17.The apparatus of claim 15, further comprising the step of transmittingpre-event data comprising data indicative of the signal during apre-determined time period before the event and post-event dataindicative of the signal after the event from memory to the controllerwhen the event is detected.
 18. The method of claim 12, furthercomprising the step of transmitting the event data indicative of theevent after detection of the event.
 19. The method of claim 18, furthercomprising the step of transmitting a signal to the sensor based upondetection of an event requesting that subsequent event data betransmitted to the controller.
 20. The method of claim 19, furthercomprising the step of transmitting a signal to the sensor requestingthat transmission of the event data be terminated after a pre-determinedperiod of time.
 21. The method of claim 12, further comprising the stepof transmitting signal data indicative of the signal upon receipt of asignal from the controller.
 22. The method of claim 21, furthercomprising the step of terminating transmission of the signal data uponreceipt of a signal from the controller.